57d30ead16611bed824d1fe10da79a5a02fb32ac,bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java,ModelAdapterFactory,setField,#InjectableField#Object#Object#Result#,714
Before Change
}
private boolean setField(InjectableField injectableField, Object createdObject, Object value, Result<?> result) {
if (value != null) {
Field field = injectableField.getField();
value = adaptIfNecessary(value, field.getType(), field.getGenericType(), result);
// value may now be null due to the adaptation done above
if (value == null) {
return false;
}
boolean accessible = field.isAccessible();
try {
if (!accessible) {
field.setAccessible(true);
}
field.set(createdObject, value);
return true;
} catch (Exception e) {
log.error("unable to inject field", e);
return false;
} finally {
if (!accessible) {
field.setAccessible(false);
}
}
} else {
return false;
}
}
After Change
private RuntimeException setField(InjectableField injectableField, Object createdObject, Object value) {
Field field = injectableField.getField();
Result<Object> result = adaptIfNecessary(value, field.getType(), field.getGenericType());
if (result.wasSuccessfull()) {
boolean accessible = field.isAccessible();
try {
if (!accessible) {
field.setAccessible(true);
}
field.set(createdObject, result.getValue());
} catch (Exception e) {
return new ModelClassException("Could not inject field due to reflection issues", e);
} finally {
if (!accessible) {
field.setAccessible(false);
}
}
return null;
} else {
return result.getThrowable();
}
}